home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / MacHaskell 2.2 / progs / demo / primes.hs < prev    next >
Encoding:
Text File  |  1994-09-27  |  401 b   |  16 lines  |  [TEXT/YHS2]

  1. -- This program implements Eratosthenes Sieve
  2. -- to generate prime numbers.
  3.  
  4. module Main where
  5.  
  6. primes :: [Int]
  7. primes = map head (iterate sieve [2 ..])
  8.  
  9. sieve :: [Int] -> [Int]
  10. sieve (p:ps) = [x | x <- ps, (x `mod` p) /= 0]
  11.  
  12. main = putStr "How many primes? " >>
  13.        getLine >>= \ input ->
  14.        accumulate_ (map (\p -> putStr (show p ++ "\n"))
  15.                         (take (read input) primes))
  16.